# Exercice 1: Simulation d'une variable aléatoire, sans remise # On tire aléatoirement trois cartes d'un jeu de n cartes (sans remise), n>4, les cartes sont # numérotées de 0 à n-1. # X est la variable aléatoire qui représente la somme des valeurs des cartes tirées. # # 1) Simulez par une fonction X(n) X pour 20 cartes, et renvoyez la valeur de X. # # 2) a. Simulez par une fonction Xk(n, k) k tirages, et renvoyez la moyenne de X sur ces k tirages. # b. Renvoyez également par la fonction Xk(n, k) le pourcentage de fois où X est supérieur à 2*n. # # 3) a. Affichez un graphique de la moyenne de X en fonction de n, pour n variant de 5 à 200, # et k=1000. # b. Affichez sur ce même graphique le pourcentage de fois où X est supérieur à 2*n en fonction # de n, pour n variant de 5 à 200, et k=1000. # c. Affichez la droite d'équation y=1.5x en pointillés rouges sur le graphique précédent, # la droite doit être derrière les autres courbes sur le graphique (il faut donc mettre # la ligne de code pour créer la droite avant celles pour créer les courbes). # d. Ajoutez un titre, des labels aux axes, une grille et une légende. # Correction possible de l'exercice 1: # 1) import random def X(n): L=[i for i in range(0, n+1)] s=0 for i in range(3): x=random.randint(0, len(L)-1) a=L.pop(x) s+=a return s print(X(7)) # 2) def Xk(n, k): total = 0 sup=0 for i in range(k): x=X(n) total += x if x > 2*n: sup+=1 return total/k, sup/k*100 print(Xk(20, 1000)) # 3) import matplotlib.pyplot as plt import numpy as np n_values = np.linspace(5, 200, 196) # 196 car il y a 196 valeurs entre 5 et 200 (les deux extrêmes inclus) plt.plot(n_values, 1.5*n_values, '--', color='red', label="y = 1.5x") # Ligne rouge en pointillés pour x=y y_values = [Xk(int(n), 1000)[0] for n in n_values] # On utilise [0] pour obtenir le premier élément des deux retournés par Xk (Donc la moyenne de X) plt.plot(n_values, y_values, label="Moyenne de X pour n cartes") y2_values = [Xk(int(n), 1000)[1] for n in n_values] # On utilise [1] pour obtenir le second élément des deux retournés par Xk (Donc le pourcentage de fois où X est supérieur à 2*n) plt.plot(n_values, y2_values, label="Pourcentage de X > 2*n") plt.xlabel("Nombre de cartes") plt.ylabel("Moyenne de X et\npourcentage de X > 2*n") plt.title("Moyenne de X en fonction de n et pourcentage de fois où X > 2*n,\npour k=1000") plt.grid() plt.legend() plt.show() # Pour tirer aléatoirement k éléments distincts d'une liste de n éléments (k<=n), on peut # utiliser la fonction sample(liste, k) de la bibliothèque random, elle n'est pas # obligatoire mais peut être utile.